package com.example.ai.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 订单数据传输对象
 * 用于表示系统中的交易订单信息
 *
 * @author czwa
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Order {
    /**
     * 订单唯一标识
     * 数据库自增主键
     */
    private int id;

    /**
     * 订单附加信息
     * 可存储订单备注等扩展内容
     */
    private String information;

    /**
     * 订单总金额
     * 单位：元，保留两位小数
     */
    private double expend;

    /**
     * 订单创建时间
     * 记录订单创建的时间戳
     */
    private LocalDateTime createTime;

    /**
     * 创建订单的用户ID
     * 关联用户表主键
     */
    private Long creator;

    /**
     * 订单状态
     * 0-待支付 1-已支付 2-已发货 3-已完成 4-已取消
     */
    private Integer status;

    /**
     * 订单包含的商品项
     * 关联商品项列表
     */
    private item[] items;

    /**
     * 订单商品总数量
     * 所有商品项数量之和
     */
    private int totalItems;

    /**
     * 订单更新时间
     * 记录订单最后修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 最后修改订单的用户ID
     * 关联用户表主键
     */
    private Long updater;

    /**
     * 下单用户ID
     * 关联用户表主键
     */
    private int userId;
}